/****************************************************************************
                Университет:    Санкт-Петербургский Политехнический Университет
                Кафедра:        Компьютерные системы и программные технологии
                Аспирант:       Быков Илья Иванович
                Программа:      Расчет коэффициентов распределения
                Модуль:         removenodecommand.cpp
                Назначение:
****************************************************************************/

#include "mainwindow.h"
#include "removenodecommand.h"
#include "document.h"
#include "node.h"
#include "edge.h"

/******************************************************************************
** RemoveShapeCommand
*/

RemoveNodeCommand::RemoveNodeCommand(Document *doc, QList<Node*> nodeList, QUndoCommand *parent)
    : Command(RemoveNodeCommandId, doc, parent)
    , m_nodeList(nodeList)
{
    MainWindow::instance()->statusBar()->showMessage("Объект удален", 5000);
    if(m_nodeList.size() == 1) {
        setText(QString("Удален узел № %1").arg(QString::number(m_nodeList[0]->number())));
    } 
    else {
        setText(QString("Удалена группа узлов"));
    }
    
}

void RemoveNodeCommand::undo()
{
    foreach (Node *node, m_nodeList) {
        document()->addNode(node, false);
    }
    document()->updateEdges();
}

void RemoveNodeCommand::redo()
{
    foreach (Node *node, m_nodeList) {
        document()->removeNode(node, false);
    }
    document()->updateEdges();
}

